package leetCode;
import java.util.LinkedList;
import java.util.Queue;

/**
 * 
 */

/**
 * @author zhongfang
 *
 */
public class MyStack {
	Queue<Integer> queue1;
	Queue<Integer> queue2;//临时的栈
	int topIndex;
    /** Initialize your data structure here. */
    public MyStack() {
        queue1=new LinkedList<>();
        queue2=new LinkedList<>();
    }
    
    /** Push element x onto stack. */
    public void push(int x) {
        topIndex++;
        queue1.add(x);
    }
    
    /** Removes the element on top of the stack and returns that element. */
    public int pop() {
    	int result=0;
    	int n=queue1.size();
    	while (queue1.size()>1) {//取出前面的放入第二个栈中
			int tmp=queue1.poll();
			queue2.add(tmp);
		}
    	result=queue1.poll();//取出最里面的数
    	//再放回到queue1中
    	while (!queue2.isEmpty()) {
			queue1.add(queue2.poll());
		}
    	return result;
    }
    
    /** Get the top element. */
    public int top() {
    	int result=0;
    	int n=queue1.size();
    	while (queue1.size()>1) {//取出前面的放入第二个栈中
			int tmp=queue1.poll();
			queue2.add(tmp);
		}
    	result=queue1.poll();//取出最里面的数
    	//再放回到queue1中
    	while (!queue2.isEmpty()) {
			queue1.add(queue2.poll());
		}
    	queue1.add(result);
    	return result;
    }
    
    /** Returns whether the stack is empty. */
    public boolean empty() {
        return queue1.isEmpty();
    }
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
